<?php
class Gallery_ControlPanelController extends XPHP_Controller
{
    public function _init ()
    {
        $this->loadLayout('ControlPanel/XAdmin');
    }
    #[Authorize(roles = 'Administrator')]
    public function indexAction ()
    {
        //Lấy ra toàn bộ danh sách các thư viện ảnh
        $model = new Areas_Gallery_Models_Gallery();
        $galleryList = $model->getGalleries();
        $this->view->galleryList = $galleryList;
        return $this->view();
    }
    #[Authorize(roles = 'Administrator')]
    public function createAction ()
    {
        return $this->view();
    }
    #[Authorize(roles = 'Administrator')]
    public function createPost (Areas_Gallery_Models_Gallery $model)
    {
        if ($this->model->validate()) {
            //Kiểm tra xem danh mục đã tồn tại hay chưa
            if (! $this->model->exists(
            array('name' => $this->model->name))) {
                if ($this->model->insert())
                    return $this->json(
                    array('success' => true, 
                    'message' => 'Thêm thư viện ảnh thành công'));
                else
                    return $this->json(
                    array('success' => false, 
                    'message' => 'Xảy ra lỗi khi cố thêm thư viện ảnh mới vào hệ thống'));
            } else
                return $this->json(
                array('success' => false, 
                'message' => 'Tên thư viện ảnh này đã tồn tại trong hệ thống'));
        } else {
            return $this->json(
            array('success' => false, 
            'message' => 'Thông tin nhập vào chưa hợp lệ'));
        }
    }
    #[Authorize(roles = 'Administrator')]
    public function editAction ()
    {
        //Lấy ra danh mục tin tức cần sửa
        $model = new Areas_Gallery_Models_Gallery($this->params[0]);
        //Trả về view
        return $this->view($model);
    }
    #[Authorize(roles = 'Administrator')]
    public function editPost(Areas_Gallery_Models_Gallery $model)
    {
        if ($this->model->validate()) {
            //Kiểm tra xem danh mục đã tồn tại hay chưa
            if (! $this->model->exists(
            array('name' => $this->model->name, 'id !=', $this->model->id))) {
                if ($this->model->update())
                    return $this->json(
                    array('success' => true, 
                    'message' => 'Cập nhật thư viện ảnh thành công'));
                else
                    return $this->json(
                    array('success' => false, 
                    'message' => 'Xảy ra lỗi khi cố cập nhật thư viện ảnh'));
            } else
                return $this->json(
                array('success' => false, 
                'message' => 'Tên thư viện ảnh đã tồn tại trong hệ thống'));
        } else {
            return $this->json(
            array('success' => false, 
            'message' => 'Thông tin nhập vào chưa hợp lệ'));
        }
    }
    #[Authorize(roles = 'Administrator')]
    public function deletePost (Areas_Gallery_Models_Gallery $model)
    {
        if ($this->model->delete())
            return $this->json(
            array('success' => true, 
            'message' => 'Xóa thư viện ảnh thành công'));
        else
            return $this->json(
            array('success' => false, 
            'message' => 'Xảy ra lỗi khi cố gắng xóa thư viện ảnh'));
    }
}